CSCIĀ 0066. Object-Oriented Programming Using C++

Units: 3
Prerequisite: Completion of CSCI 12 with grade of "C" or better
Advisory: Completion of CSCI 46 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
An introduction to the concepts of object-oriented programming and the application of the C++ language. Extensive programming practice using C++ as the vehicle toward modular, reusable object-oriented code. (CSU, UC)

CSCI 0066 - Object-Oriented Programming Using C++

http://catalog.sierracollege.edu/course-outlines/csci-0066/

Catalog Description DESCRIPTION IS HERE: Prerequisite: Completion of CSCI 12 with grade of "C" or better Advisory: Completion of CSCI 46 with grade of "C" or better Hours: 72 (54 lecture, 18 laboratory) Description: An introduction to the concepts of object-oriented programming and the application of the C++ language. Extensive programming practice using C++ as the vehicle toward modular, reusable object-oriented code. (CSU, UC) Units 3 Lecture-Discussion 54 Laboratory 18 By Arrangement Contact Hours 72 Outside of Class Hours Course Student Learning Outcomes Apply C++ concepts including structures, classes, methods, objects, and primitive types, referencing basic C++ libraries. Use the object-oriented language concepts available in C++ to demonstrate encapsulation, abstraction, instantiation, overloading, inheritance, composition, and polymorphism. Apply the object-oriented language concepts available in C++ to design and implement a program that applies to a real-world application. Course Content Outline I. Introduction to C++ A. Parts of a C++ program B. Primitive data types C. cout, cin D. Operators E. Comments F. Compiling source code II. Expressions A. Type conversion B. Contants C. Formatting output III. Conditionals A. if/else if/else B. switch IV. Loops A. for, while, do-while B. break, continue V. Functions A. Defining and calling functions B. Prototypes C. Pass by value, pass by reference D. Local and global variables VI. Classes and Objects A. Defining classes B. Member functions C. Constructors D. Destructors E. Private, public, protected, friend F. Inheritance G. Polymorphism VII. Arrays A. Defining arrays B. Processing arrays C. Passing arrays as arguments D. Vectors E. Multi-dimensional arrays VIII. Pointers A. Pointer variables B. Pointer arithmetic C. Pointers as arguments IX. File I/O A. Output formatting B. Streams C. Binary files D. Structured files X. Standard Template Library XI. Data structures A. Linked Lists B. Recursion C. Stack D. Queue E. Tree XII. Managing Larger Projects A. Compiling and linking multiple source files B. Makefiles C. Version Control Systems Course Objectives Course Objectives Lecture Objectives: 1. Describe the principles and advantages of object-oriented programming. 2. Analyze a problem statement and construct appropriate classes to model the problem. 3. Describe the differences between the public, private, protected, and friend access permissions. 4. Design programs that take advantage of the modularity of object-oriented programs. 5. Evaluate and modify programs using C++. 6. Use object-oriented language concepts in software development projects including encapsulation, abstraction, instantiation, overloading, inheritance, composition, and polymorphism. 7. Incorporate file-handling techniques for data input, output, and updating using C++ methods for text and random access file organization. Laboratory Objectives: 1. Write correct C++ programs that utilize sequencing, conditionals, and loops. 2. Write correct C++ programs consisting of at least two classes. 3. Write correct C++ programs utilizing file I/O to read and write text files. 4. Write correct C++ programs utilizing arrays of primitive types and arrays of objects. 5. Write program documentation conforming to acceptable industry practices. Methods of Evaluation Objective Examinations Problem Solving Examinations Projects Reading Assignments 1. Read the textbook section on "compound data types" to learn about the differences between pointers and references. Be prepared to discuss it during the lecture. 2. Locate and read online documentation for the Clang compiler. From this to determine how to invoke the compiler so that "loop unrolling" optimization is performed. Be prepared to discuss in class. Writing, Problem Solving or Performance 1. Using a Car Rental business as a guide, create a class called "Invoice" with 6 private data members: invoice number, days rented, insurance amount, rental rate, total fee, total charge. Create 3 member functions: Getdata(), Calcfee(), and ShowInvoice(). Instantiate the object in main() and call the member functions. 2. Create an overloaded minus sign "-" operator to handle a discount coupon. Prompt if there is a coupon, and the percentage discount. Use you overloaded minus operator to recalculate the customer fees. Other (Term projects, research papers, portfolios, etc.) Methods of Instruction Laboratory Lecture/Discussion Distance Learning Other materials and-or supplies required of students that contribute to the cost of the course.